#ifndef PP_ASSERT_H_
#define PP_ASSERT_H_

#include <string>
#include <boost/preprocessor/expand.hpp>
#include <boost/preprocessor/stringize.hpp>

namespace bmock
{
	void __sl_pp_compare(const char *fileName, const size_t line, const std::string& expected_str, const char *actual);
}

#define __PP_ASSERT_EQUAL(EXPECTED,ACTUAL)\
	bmock::__sl_pp_compare(__FILE__,__LINE__,EXPECTED,ACTUAL);

#define PP_ASSERT_EQUAL(EXPECTED,ACTUAL)\
	__PP_ASSERT_EQUAL(EXPECTED,BOOST_PP_EXPAND(BOOST_PP_STRINGIZE ((ACTUAL))))\

#endif